Time-based image display

ABSTRACT

Methods, systems, and apparatus are provided for time-based image display. In an aspect, a method includes accessing two or more images; obtaining, for each of the images, a timestamp for the image; generating, based on the timestamps for each of the images, a slideshow schedule, the slideshow schedule specifying, for each of two or more time windows, one or more of the images for display during the time window; identifying, based on a current time, a current time window from the two or more time windows; and causing display of the one or more images specified by the slideshow schedule for the current time window.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of, and claims priorityto, U.S. patent application Ser. No. 14/076,377, titled “TIME-BASEDIMAGE DISPLAY,” filed on Nov. 11, 2013, which application claimspriority under 35 U.S.C. §119(e) to U.S. Provisional Application Ser.No. 61/755,776, titled “Smart Wall Calendar,” filed on Jan. 23, 2013.The disclosure of each of the foregoing applications is incorporatedherein by reference.

BACKGROUND

This specification relates to displaying images based on time.

The use of electronic devices in viewing media, such as digital imagefiles and video files, has led to the development of various devices andmethods for presenting digital media to users. For example, personalcomputers allow a user to choose a background image to be displayed asthe background of a user interface, and digital photo frames can displaya slideshow of images stored on the device. These devices generally usesimple methods for displaying images, such as displaying a particularimage specified by a user, or randomly shuffling through images storedon the device.

SUMMARY

In general, the subject matter described in this specification involvesdisplaying images based on time.

In general, one innovative aspect of the subject matter described inthis specification can be embodied in methods that include the actionsof accessing two or more images; obtaining, for each of the images, atimestamp for the image; generating, based on the timestamps for each ofthe images, a slideshow schedule, the slideshow schedule specifying, foreach of two or more time windows, one or more of the images for displayduring the time window; identifying, based on a current time, a currenttime window from the two or more time windows; and causing display ofthe one or more images specified by the slideshow schedule for thecurrent time window. Other embodiments of this aspect includecorresponding systems, apparatus, and computer programs, configured toperform the actions of the methods, encoded on computer storage devices.

These and other embodiments can each optionally include one or more ofthe following features. Obtaining, for each of the images, a timestampfor the image may comprise obtaining, for each of the images, an EXIFtimestamp included in EXIF data for the image, the EXIF timestampindicating a time the image was captured by an image capturing device.

Obtaining, for each of the images, a timestamp for the image maycomprise obtaining, for each of the images, a user specified timestampderived from user input.

For each time window, the timestamp of each image specified by theslideshow schedule for display during the time window may specify a timeincluded in a period of time specified by the time window.

Each time window may specify a period of time spanning a calendar month.Each time window specifies a period of time spanning a calendar day.

The slideshow schedule may specify two or more images for display duringa particular time window, and the slideshow schedule may further specifyan alternating display of the two or more images during the particulartime window.

The method may further comprise providing slideshow data to a userdevice, the slideshow data causing display, on the user device, of atleast one of the one or more images specified by the slideshow schedulefor the current time window.

Particular embodiments of the subject matter described in thisspecification can be implemented so as to realize one or more of thefollowing advantages. Digital media, such as images, can beautomatically displayed during periods of time that are relevant to themedia. Users may customize the display of digital media during periodsof time specified by the user, and users and third party media providersmay share images or other media with other users for display inaccordance with a particular schedule. In addition, different displaydevices may be synchronized, resulting in displaying images and/or othermedia in the same or similar manner across one or more users' devices.Each of the foregoing advantages may lead to satisfaction of users'informational and entertainment needs.

The advantages and features listed in the above list are optional andnot exhaustive. The advantages and features can be separately realizedor realized in various combinations.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages of thesubject matter will become apparent from the description, the drawings,and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an example environment in which images aredisplayed based on time.

FIG. 2 is a diagram of an example data flow in which a slideshowschedule is generated for displaying images based on time.

FIG. 3A is an illustration of an example image display device fordisplaying images based on time.

FIG. 3B is an illustration of an example of displaying and providingimages based on time.

FIG. 4 is a flow chart of an example process for displaying images basedon time.

FIG. 5 is a block diagram of an example data processing apparatus.

DETAILED DESCRIPTION

An image display device facilitates the display of images based on time.For example, an image display device may obtain timestamps of imagesthat are eligible for display and create a slideshow schedule thatspecifies which image(s) will be displayed for a given time.

An image display device may access images stored locally on the device,or images stored on a network storage device. The images may include atimestamp, such as a timestamp included in Exchangeable image fileformat (Exif) data, or provided by a user. Based on the timestamps, theimage display device can create a slideshow schedule for displaying theimages. For example, if ten images accessed by the image display devicehave a timestamp indicating that the images were captured on January 1,those ten images may be scheduled for displaying on the image displaydevice when the current time is January 1. The ten images may alternatedisplay, e.g., one every 30 seconds, or two or more can be displayed atthe same time, e.g., as a collage. Other options for display may beused. For example, an image display device may be an electronic wallcalendar, and images may be rotated in an image display portion of thecalendar as well as in a calendar display portion, e.g., an image can bedisplayed in the box of a calendar associated with the day, January 1.

Time windows can be used during generation of a slideshow schedule. Atime window may specify, for example, a period of time, such as aparticular day, week, month, season, or year. Time windows may bepredefined and/or configurable by a user. By way of example, an imagedisplay device may generate a slideshow schedule that specifies, for anexample time window encompassing the month of January, every image witha timestamp specifying a time in January. During the month of January,an image display device may then cause the display of the imagesassociated with the January time window.

While the following examples specify slideshow schedules for displayingimages, other types of digital files and media may be presentedaccording to a slideshow schedule based on timestamps. For example,video files, digital artwork files, and audio files may all haveassociated timestamps, and may all be presented on image display devicesand/or user devices in accordance with a slideshow schedule.

FIG. 1 is a diagram of an example environment 100 in which images aredisplayed based on time. A computer network 102, such as a local areanetwork (LAN), wide area network (WAN), the Internet, or a combinationthereof, connects an image display device 104, user devices 106, and animage server 108. The online environment 100 may include more than oneimage server 108 and many user devices 106.

A user device 106 is an electronic device capable of communicating withthe image display device 104, either directly, e.g., using a cable,Wi-Fi Direct, Bluetooth, or Near Field Communications (NFC) device, orover the network 102. Example user devices 106 include personalcomputers, mobile communication devices, and other devices that can sendand receive data. A user device 106 typically includes a display forpresenting information, such as text, images, and video.

An image server 108 is an electronic device capable of communicatingwith the image display device 104 and user devices 106 over the network102. The image server 108 may be a server computer, or a cluster ofserver computers, that is capable of providing images to the imagedisplay device 104 and user devices 106. The image server 108 isconnected to a storage device containing server image data 110, such asimage files and associated image information, such as timestamps.

An image display device 104 is an electronic device capable ofdisplaying images, e.g., using an LCD (liquid crystal display) or OLED(organic light emitting diode) monitor. The image display device 104 maybe capable of communicating with the user devices 106 and image servers108, directly and/or over the network 102. In some implementations, animage display device 104 is a type of user device. For example, theimage display device 104 may be a personal computer or mobilecommunications device, such as a smart phone.

The image display device 104 can access images, e.g., from a localstorage device, user devices 106, and/or an image server 108. Usingtimestamps associated with the images, the image display device 104 cangenerate a slideshow schedule that specifies which images will bedisplayed on the image display device 104 during various windows oftime. Generating a slideshow schedule for displaying images is describedin further detail below.

The particular embodiment shown in the example environment 100 is oneexample way in which the subject matter described herein may beimplemented. While the example environment 100 is described using theimage display device 104 as the device responsible for generatingslideshow schedules, in some implementations another device, such as theimage server 108, may generate a slideshow schedule. For example, theimage server 108 may generate a slideshow schedule, and provide theschedule (or the image(s) to be displayed) to the image display device104. In some implementations, an image server 108 may be capable ofmaintaining one or more user accounts that are each associated with oneor more image display devices 104. The image server 108 may be capableof receiving user input from a user of an image display device 104 oruser device 106 to facilitate the generation of a slideshow schedule.

FIG. 2 is a diagram of an example data flow 200 in which a slideshowschedule is generated for displaying images based on time. The imagedisplay device 104 accesses images 202. The images 202 may be providedby various devices, such as a camera 204, smart phone 206, personalcomputer 208, and/or image server 108. In some implementations, some orall of the accessed images 202 may be stored in a local data store 210of the image display device.

The image display device 104 obtains a timestamp for each of the images202. In the example data flow 200, timestamps 212 are depicted forseveral images. In some implementations, the timestamp may be obtainedfrom metadata included in an image. For example, Exif data for an imagemay include a timestamp that indicates a date and/or time that an imagewas captured by an image capturing device. In some implementations, atimestamp can be provided by user input. For example, the image displaydevice 104 may prompt a user to provide a timestamp for one or moreimages. As noted above, timestamps may indicate a date/time an image wascaptured; other example timestamps may indicate a date/time an image wasuploaded to a server device, transferred to a user device or imagedisplay device, or any other date/time provided by a device or user.

Based on the timestamps 212 for the images 202, the image display devicegenerates a slideshow schedule 214. The slideshow schedule 214,discussed in further detail below, specifies which image(s) will bedisplayed during which time window(s) 216. Time windows 216 may specifya period of time, such as a particular hour, day, month, season, oryear. In some implementations, time windows may be predefined by theimage display device 104. For example, the image display device 104 maypredefine a time window for each calendar month, and a time window foreach calendar day. In some implementations, time windows may be definedby user input. For example, a user may specify a time window spanningthe months of summer. In some implementations, a time window may beconfigured to repeat, e.g., a time window may specify every Friday, orthe first Sunday of each month.

The example data flow 200 depicts time windows 216 for some of theimages 202. For example, Image01, which has a timestamp of 1/1/2011, isassociated with a January time window. This indicates that Image01 iseligible for being displayed during the month of January. In someimplementations, an image may be associated with multiple time windows.Image02 has a timestamp of 12/25/2010, and is associated with a Decembertime window as well as a December 25 time window, which indicates thatImage02 is eligible for being displayed during the month of December, aswell as on December 25. In some implementations, images in more precisetime windows have a higher priority for display during period of time inwhich multiple time windows apply. For example, the time window forDecember 25 is within the time window for December, and imagesassociated with the December 25 time window may be prioritized fordisplay over images in the December time window.

As noted above, the example slideshow schedule 214 specifies, forvarious time windows, the image(s) to be displayed during the timewindow. The example slideshow schedule 214 is for the year 2013, and itbegins with a time window encompassing the month of January, 2013.According to the slideshow schedule 214, Image01 and Image05 are theimages specified for display during the month of January. Two other timewindows, one for January 1, and one for January 15, are within theJanuary time window. On Jan. 1, 2013, the slideshow schedule 214indicates that Image06 should be displayed.

In some implementations, when a current time is within two or more timewindows, the images specified by those time windows may all be eligiblefor display. For example, when the current time is Jan. 1, 2013, Image06(which corresponds to the January 1 time window) may be eligible fordisplay, as well as Image01 and Image05 (which correspond to the Januarytime window). In some implementations, images associated with a moreprecise time window may be prioritized. For example, on Jan. 1, 2013,Image06 may be eligible for display, but not Image01 or Image05. Or,images Image01 and Image05 may be eligible for display, but the lengthof time they are displayed on January 1 may be less than the length oftime that Image06 is displayed. As another example, images Image01,Image05, and Image06 may all be displayed as part of a collage, withImage01 having a larger display area than Image05 and/or Image06.

In some implementations, images may be placed into one or more defaulttime windows. For example, a default configuration of the image displaydevice may associate each image with two time windows—one for the monththat includes the image's timestamp, and one for the day that includesthe image's timestamp. For example, an image with a timestamp of May 6,2007, may be associated with a time window for the month of May and atime window for the day, May 6.

In some implementations, time windows and corresponding images may becustomized based on user input. For example, a user wishing to see aparticular image every Friday may cause the image display device 104 tocreate a time window for each Friday of the year. The user may also, insome implementations, associate one or more images with time windows.For example, the user may provide an image with a timestamp that resultsin the image being placed in a particular time window, or the user mayspecify that an image is to be displayed during one or more timewindows, regardless of the timestamp.

The image display device 104 identifies a current time and causes thedisplay of the images specified by the slideshow schedule for displayduring the time window(s) that correspond to the current time. Using theexample slideshow schedule 214, for a current time of Jan. 15, 2013,there are two time windows, e.g., the time window for January, and thetime windows for Jan. 15, 2013. In implementations where images in moreprecise time windows are displayed in lieu of those in less precise timewindows, images Image07 and Image08 are the only images to be displayed.The image display device 104 may, by way of example, cause Image07 andImage08 to be alternatively displayed on a display 218 of the imagedisplay device 104.

In some implementations, images may be assigned a display priority, andbe displayed according to the priority. As mentioned above, images thatbelong to a relatively precise time window may have a higher priorityfor display than images belonging to a time window encompassing agreater period of time. In some implementations, the priority of animage may depend on an age of the image, measured by its timestamp. Forexample, an image that is one year old may have a higher priority thanan image that is ten years old. In some implementations, the priority ofan image may depend on an image quality value for the image. Imagequality may be measured, for example, by one or more metrics, such as auser rating or measure of image resolution (e.g., in pixels), whereimages with higher user ratings, or images of a greater resolution, mayhave a higher priority for display than images with lower user ratingsor having a lower resolution. Image priority may be used, for example,to determine whether an image will be displayed at all, for what lengthof time an image will be displayed, the size of the image to bedisplayed, and/or the location in which the image is displayed. By wayof example, if three images are to be displayed in a collage on an imagedisplay device, the image with the highest priority among the three mayhave the largest display area within the collage relative to the displayareas of the other images.

In some implementations, a slideshow schedule may specify a particulartime of day for displaying one or more images. For example, an imagetaken on Jul. 4, 2011 at 06:30:00 may be scheduled for display during atime window at or near 06:30:00 on July 4^(th). In situations wheremultiple images have timestamps on the same day, e.g., timestamps of07/04/2011 06:30:00, 07/04/2005 12:00:00, and 07/04/2009 20:45:10, eachimage may be scheduled for display during a time window at or near thetime of day that corresponds to the time of day specified by thetimestamp. For example, the image with the timestamp of 07/04/200512:00:00 may be displayed at or near 12:00:00 on July 4^(th), while theimage with the timestamps of 07/04/2009 20:45:10 may be displayed at ornear 20:45:10 on July 4^(th). In some implementations, the time of dayspecified by a timestamp may affect display priority. For example, whenmultiple images are eligible for display on a particular day, thepriority of each image may be affected by the time of day. An image witha timestamps of 06:30:00 may have a higher priority at 07:00:00 than at22:00:00, while an image with a timestamps of 21:00:00 may have a higherpriority at 22:00:00 than at 07:00:00. As noted above, the priority ofan image can affect the manner in which the image is displayed, and canbe used to determine whether an image is eligible for display at a givenday/time. By way of example, images taken during the morning on aparticular day may be more prominently displayed during the morning,while images taken later in the evening may be more prominentlydisplayed during the evening.

The manner in which the image display device 104 causes display ofimages may change depending on the type of the image display device 104,or an environment in which images are to be displayed, e.g., within anapplication on the user device, as a background image, etc. Someexamples of methods for causing the display of images are described withrespect to FIGS. 3A and 3B, below.

FIG. 3A is an illustration 300 of an example image display device fordisplaying images based on time. In this example, the image displaydevice 302 is an electronic wall calendar 302. The wall calendar 302includes, for example, a data processing apparatus, a display screen foroutput, and software for causing the display of images and other data,such as calendar information. The electronic wall calendar may alsoinclude various other components and features, such as a camera,speaker(s), microphone, remote control, wired and/or wireless networkinterface controller (e.g., Wi-Fi and/or Bluetooth), communicationsports (e.g., USB, IEEE 1394, and/or fiber optic), and solid state and/ormagnetic storage device(s), to name a few.

The wall calendar 302 includes a display 304, such as a touch-screen LCDmonitor, with an image display area 306 and a calendar display area 308.The display portions are examples, and additional display configurationscould be used. For example, the image display area 306 could be largeror smaller, and could occupy the left, right, and/or bottom of the wallcalendar's display 304. The calendar display area 308 could also belarger or smaller, could occupy a different area of the display 304, andcould display a period of time other than a month, such as a day, week,or year. The wall calendar also shows the current date 310 as Apr. 6,2013, and the box 312 for the current day is highlighted in the calendardisplay area 306.

Assuming, by way of example, that the wall calendar 302 is using theslideshow schedule 214 discussed above with reference to FIG. 2, andgiven a current date/time of Apr. 6, 2013, the images eligible fordisplay are Image03, Image04, Image13, and Image14. In someimplementations, the images rotate presentation in the image displayarea 306. For example, each of the eligible images may be displayed for1 minute before another image is rotated in. In some implementations,multiple eligible images may be displayed in the image display area,e.g., arranged in a collage. Other methods for displaying images mayalso be used, such as displaying images as a background for the entiredisplay 304, or displaying an image as a background for the calendardisplay area 308

In some implementations, a time window has a corresponding area fordisplay of the image(s) associated with the time window. For example,the calendar display area 306 includes a box 312 for Apr. 6, 2013. Theimage, Image03 that is associated with Apr. 6, 2013 can be displayed inthe box 312. As another example, the calendar display area also includesa box 314 for Apr. 23, 2013. A time window for Apr. 23, 2013 includes animage, Image16, that can be displayed in the box 314, even when acurrent time is not within the April 23 time window.

In some implementations, the particular image or images being displayedcan be customized based on user input. For example, on a touch-screendevice, the wall calendar 302 may rotate a new image into the imagedisplay area 306 in response to receiving a swipe input in the imagedisplay area 316. As another example, selection of an image in a displayarea for a time window, such as box 314, may cause the correspondingimage—or any other images eligible for display during the time window—tobe displayed in the image display area 306. Further examples fordisplaying images are discussed with reference to FIG. 3B, below.

FIG. 3B is an illustration 350 of an example of displaying and providingimages based on time. The example includes an image display device 352that, in this example, is a personal computer. The image display device352 can display images in a display area 354, e.g., as one or morerotating background images, or for display during a sleep mode for thepersonal computer.

The image display device 352 is in communication with a user device 360that, in this example, is a smart phone having its own image displayarea 362. Communication between the user device 360 and image displaydevice 352 may be wired or wireless, and data can be transferred one-wayor both ways. In some implementations, the user device 360 includes acamera for capturing images. Captured images 364 can be transferred tothe image display device 352. For example, a smart phone may include anapplication for providing images directly to a personal computer using aUSB cable or Bluetooth connection, or may transfer images to a networkstorage device accessible by both the personal computer and the smartphone.

In some implementations, the image display device 352 can use thecaptured images 364, and associated timestamp information, to create aslideshow schedule 366. The slideshow schedule 366 may also includeimages other than the captured images 364 provided by the user device360, such as images obtained from an image server, images provided byother user devices, and/or images captured by the image display device352. The image display device 352 can display images, including one ormore captured images 364, in its display area 354 according to theslideshow schedule 366.

In some implementations, the image display device 352 provides the userdevice 360 with the slideshow schedule 366. The user device 360 may thendisplay images in its own image display area 362 according to theslideshow schedule 366. In some implementations, the image displaydevice 352 provides display images 368 directly to the user device 360for display. For example, the personal computer can transmit every imagespecified by the slideshow schedule 366 to the smart phone, so that thesmart phone can retrieve the images from its local storage device fordisplay on demand and/or in accordance with the slideshow schedule 366.

In some implementations, the image display device 352 pushes the displayimages 368 to the user device 360 on an as-needed basis according to theslideshow schedule 366. For example, the personal computer may wait totransmit images to the user device until the current time is within atime window associated with the images. In some implementations, theslideshow schedule 366 and/or images 368 may be stored on a networkdevice, such as a network hard drive or server computer. In thesesituations, images may be pushed to, or pulled by, the image displaydevice 352 and/or user device 360. For example, a server computerstoring the display images 368 and slideshow schedule can provide imagesto the image display device 352 and/or user device 360 in accordancewith the slideshow schedule 366.

While the foregoing examples depict particular types of electronicdevices providing images for display and displaying images, any type ornumber of devices may share and display images with one another inaccordance with a slideshow schedule. For example, devices may beassociated with a user account, and a synchronized slideshow schedulecan cause display of images on multiple devices at one time. Each imagedisplay device may be capable of displaying images in a number of ways,and the manner in which images are displayed may be the same ordifferent for different devices. For example, a virtual wall calendardisplay may be used on a personal computer, while a collage display maybe used on a smart phone.

In some implementations, a user may subscribe to a public slideshowschedule provided by another user, or a third party slideshow scheduleprovider. For example, a user may customize a slideshow schedule for anelectronic wall calendar that depicts a different image each day of theyear. The user can make the slideshow schedule and images public,allowing other users to access, use, and/or customize the slideshowschedule on their own devices.

FIG. 4 is a flow chart of an example process for displaying images basedon time. The process may be used by a data processing apparatus that isused to realize one or more of the systems described above, such as animage display device. In particular, the process 400 may generate aslideshow schedule for images based on timestamps and cause display ofthe images according to the slideshow schedule.

Two or more images are accessed (402). In some implementations, theimages are accessed on a storage device of an image display system. Forexample, an image display device that is a server computer may accessimages stored on one or more storage devices.

For each image, a timestamp is obtained (404). In some implementations,obtaining a timestamp includes obtaining metadata timestamp, such as anExif timestamp, included in metadata, such as Exif data, for an image.The metadata timestamp may indicate a time that the corresponding imagewas captured by an image capturing device, such as a digital camera. Insome implementations, obtaining a timestamp includes obtaining a userspecified timestamp derived from user input. For example, a user of asmart phone may upload an image to the image display device and specifya date for the image. The specified date may be the date the image wascaptured, or any other date specified by the user.

A slideshow schedule is generated based on the timestamps (406). Theslideshow schedule specifies, for each of two or more time windows, oneor more of the images for display during the time window. In someimplementations, the timestamp of each image specified by the slideshowschedule for display during a time window specifies a time included in aperiod of time specified by the time window. For example, if a timewindow specifies the month of November, each image specified by theslideshow schedule for display during that time window has a timestampin the month of November. As discussed above, time windows can specifyany period(s) of time, such as an hour, day, month, year, every otherSaturday, etc.

In some implementations, the slideshow schedule specifies two or moreimages for display during a particular time window. The slideshowschedule may further specify an alternating display for the imagesduring the particular time window. For example, if three images arespecified for display for a particular month, they may be periodicallyrotated, e.g., the image being displayed may change every 30 seconds,every hour, or every day. In some implementations, the slideshowschedule may further specify the display of multiple images during aparticular time window. For example, if three images are specified fordisplay for a particular week, they may be displayed together as a threeimage collage. The collage itself may rotate display of images. Forexample, if a collage includes one large display area and two smalldisplay areas, the images may periodically rotate display in the variousdisplay areas.

A current time window is identified (408). The current time window isidentified based on a current time. In some implementations, multipletime windows may be identified based on the current time. For example,if a current time is May 15, a time window for the day, May 15, may beidentified, as well as a time window for the month of May.

The one or more images specified by the slideshow schedule for thecurrent time window are displayed (410). In some implementations, thedata processing apparatus performing the process 400 causes display ofthe image(s) on its own display. For example, an electronic wallcalendar or smart phone used to perform the process 400 may cause theimage(s) to be displayed on the screen of the calendar or smart phone.As described in detail above, the manner in which images are displayedmay depend on the particular device, e.g., an electronic wall calendarmay have a portion of the screen specified for the display of slideshowimages.

In some implementations, the slideshow data is provided to a userdevice, and the slideshow data causes display, on the user device, of atleast one of the images specified by the slideshow schedule for thecurrent time window. For example, a server computer used to implement animage display device may provide the slideshow schedule to a userdevice, such as an electronic wall calendar, using a communicationsnetwork, such as the Internet. The slideshow schedule may includeinstructions that, when executed by the user device, cause display ofthe images on the user device in accordance with the slideshow schedule.As discussed above, other methods for causing display of images on auser device in accordance with the slideshow schedule may be used, suchas individually pushing images to a user device for temporary storageand display, or providing instructions to a user device that cause theuser device to obtain images for display from a network storage device.

FIG. 5 is a block diagram of an example data processing apparatus 500that can be used to perform operations described above. The apparatus500 includes a processor 510, a memory 520, a storage device 530, and aninput/output device 540. Each of the components 510, 520, 530, and 540can be interconnected, for example, using a system bus 550. Theprocessor 510 is capable of processing instructions for execution withinthe system 500. In one implementation, the processor 510 is asingle-threaded processor. In another implementation, the processor 510is a multi-threaded processor. The processor 510 is capable ofprocessing instructions stored in the memory 520 or on the storagedevice 530.

The memory 520 stores information within the apparatus 500. In oneimplementation, the memory 520 is a computer-readable medium. In oneimplementation, the memory 520 is a volatile memory unit. In anotherimplementation, the memory 520 is a non-volatile memory unit.

The storage device 530 is capable of providing mass storage for theapparatus 500. In one implementation, the storage device 530 is acomputer-readable medium. In various different implementations, thestorage device 530 can include, for example, a hard disk device, anoptical disk device, a storage device that is shared over a network bymultiple computing devices, e.g., a cloud storage device, or some otherlarge capacity storage device.

The input/output device 540 provides input/output operations for theapparatus 500. In one implementation, the input/output device 540 caninclude one or more of a network interface devices, e.g., an Ethernetcard, a serial communication device, e.g., and RS-232 port, and/or awireless interface device, e.g., an 802.11 card. In anotherimplementation, the input/output device can include driver devicesconfigured to receive input data and send output data to otherinput/output devices, e.g., keyboard, printer and display devices 560.Other implementations, however, can also be used, such as mobilecomputing devices, mobile communication devices, set-top box televisionclient devices, etc.

Although an example data processing apparatus has been described in FIG.5, implementations of the subject matter and the functional operationsdescribed in this specification can be implemented in other types ofdigital electronic circuitry, or in computer software, firmware, orhardware, including the structures disclosed in this specification andtheir structural equivalents, or in combinations of one or more of them.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments of the subject matterdescribed in this specification can be implemented as one or morecomputer programs, i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus.

A computer storage medium can be, or be included in, a computer-readablestorage device, a computer-readable storage substrate, a random orserial access memory array or device, or a combination of one or more ofthem. Moreover, while a computer storage medium is not a propagatedsignal, a computer storage medium can be a source or destination ofcomputer program instructions encoded in an artificially-generatedpropagated signal. The computer storage medium can also be, or beincluded in, one or more separate physical components or media (e.g.,multiple CDs, disks, or other storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application-specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's user device in response to requests received from the webbrowser.

What is claimed is:
 1. A method comprising: displaying, on an electronic display device, an electronic wall calendar comprising an image display area and a calendar display area; displaying, within the calendar display area, a plurality of selectable date boxes, each date box corresponding to a particular calendar date of a particular calendar month and a time window that corresponds to that particular calendar date and particular calendar month, accessing a plurality of images; obtaining, for each of the images of the plurality of images, a timestamp for the image, wherein the timestamp indicates a date and time for which the image was captured by an image capture device; generating, based on the timestamps for each of the images, a slideshow schedule, the slideshow schedule specifying, for each time window, one or more of the images for display during the time window, wherein for each time window the images specified by the slideshow schedule have respective timestamps indicating a date and time that occurs within the time window; identifying, based on a current time, a current time window from the time windows, wherein the current time window matches one of the time windows of one of the displayed date boxes and the current time falls within the current time window; causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window that matches current time window; receiving a user selection of one of the date boxes as a selected date box, the selected date box corresponding to a combination of a calendar date and calendar month that is different from the combination of the calendar date and calendar month specified by the current time window; selecting the time window corresponding to the selected date box; and causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window corresponding to the selected date box.
 2. The method of claim 1, wherein obtaining, for each of the images, a timestamp for the image comprises obtaining, for each of the images, an EXIF timestamp included in EXIF data for the image, the EXIF timestamp indicating a time the image was captured by an image capturing device.
 3. The method of claim 1, wherein the slideshow schedule specifies two or more images for display during a particular time window, and wherein the slideshow schedule further specifies an alternating display of the two or more images during the particular time window.
 4. The method of claim 1, further comprising: displaying, within each date box, an image of the one or more images specified by the slideshow schedule for the time window corresponding to the date box.
 5. The method of claim 4, further comprising highlighting the date corresponding to the current time window.
 6. A system comprising: a data processing apparatus; an electronic display device; and a data store storing instructions that, when executed by the data processing apparatus, cause the data processing apparatus to perform operations comprising: displaying, on the electronic display device, an electronic wall calendar comprising an image display area and a calendar display area; displaying, within the calendar display area, a plurality of selectable date boxes, each date box corresponding to a particular calendar date of a particular calendar month and a time window that corresponds to that particular calendar date and particular calendar month, accessing a plurality of images; obtaining, for each of the images of the plurality of images, a timestamp for the image, wherein the timestamp indicates a date and time for which the image was captured by an image capture device; generating, based on the timestamps for each of the images, a slideshow schedule, the slideshow schedule specifying, for each time window, one or more of the images for display during the time window, wherein for each time window the images specified by the slideshow schedule have respective timestamps indicating a date and time that occurs within the time window; identifying, based on a current time, a current time window from the time windows, wherein the current time window matches one of the time windows of one of the displayed date boxes and the current time falls within the current time window; causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window that matches current time window; receiving a user selection of one of the date boxes as a selected date box, the selected date box corresponding to a combination of a calendar date and calendar month that is different from the combination of the calendar date and calendar month specified by the current time window; selecting the time window corresponding to the selected date box; and causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window corresponding to the selected date box.
 7. The system of claim 6, wherein obtaining, for each of the images, a timestamp for the image comprises obtaining, for each of the images, an EXIF timestamp included in EXIF data for the image, the EXIF timestamp indicating a time the image was captured by an image capturing device.
 8. The system of claim 6, wherein the slideshow schedule specifies two or more images for display during a particular time window, and wherein the slideshow schedule further specifies an alternating display of the two or more images during the particular time window.
 9. The system of claim 8, the operations further comprising: displaying, within each date box, an image of the one or more images specified by the slideshow schedule for the time window corresponding to the date box.
 10. The system of claim 9, the operations further comprising highlighting the date corresponding to the current time window.
 11. A non-transitory computer readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising: displaying, on an electronic display device, an electronic wall calendar comprising an image display area and a calendar display area; displaying, within the calendar display area, a plurality of selectable date boxes, each date box corresponding to a particular calendar date of a particular calendar month and a time window that corresponds to that particular calendar date and particular calendar month, accessing a plurality of images; obtaining, for each of the images of the plurality of images, a timestamp for the image, wherein the timestamp indicates a date and time for which the image was captured by an image capture device; generating, based on the timestamps for each of the images, a slideshow schedule, the slideshow schedule specifying, for each time window, one or more of the images for display during the time window, wherein for each time window the images specified by the slideshow schedule have respective timestamps indicating a date and time that occurs within the time window; identifying, based on a current time, a current time window from the time windows, wherein the current time window matches one of the time windows of one of the displayed date boxes and the current time falls within the current time window; causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window that matches current time window; receiving a user selection of one of the date boxes as a selected date box, the selected date box corresponding to a combination of a calendar date and calendar month that is different from the combination of the calendar date and calendar month specified by the current time window; selecting the time window corresponding to the selected date box; and causing display, in the calendar display area, of the one or more images specified by the slideshow schedule for the time window corresponding to the selected date box.
 12. The computer readable medium of claim 11, wherein obtaining, for each of the images, a timestamp for the image comprises obtaining, for each of the images, an EXIF timestamp included in EXIF data for the image, the EXIF timestamp indicating a time the image was captured by an image capturing device.
 13. The computer readable medium of claim 11, wherein the slideshow schedule specifies two or more images for display during a particular time window, and wherein the slideshow schedule further specifies an alternating display of the two or more images during the particular time window.
 14. The computer readable medium of claim 11, the operations further comprising: displaying, within each date box, an image of the one or more images specified by the slideshow schedule for the time window corresponding to the date box.
 15. The computer readable medium of claim 14, further comprising highlighting the date corresponding to the current time window. 